package com.yunhe.commons.util.mail;

import com.sun.mail.util.MailSSLSocketFactory;

import javax.mail.*;
import javax.mail.internet.*;
import java.io.File;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Date;
import java.util.Properties;

/**
 * Created by Administrator on 2017/10/11 0011.
 */
public class JMailDemo {
    public static void main(String[] args) throws MessagingException, GeneralSecurityException, IOException {
        // 1.创建参数配置
        Properties props = new Properties();
        props.setProperty("mail.smtp.host", "smtp.qq.com");     // 指定主机
        props.setProperty("mail.smtp.auth", "true"); // 指定验证为true
        //SSL
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);

        //2.创建验证器
        Authenticator auth =  new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("2603459843@qq.com", "ytdggvouymiyeadb");  //传入邮箱账号、密码
            }
        };


        //3.创建session 对象，与邮件服务器建立连接
        Session session = Session.getDefaultInstance(props, auth);
        session.setDebug(true);

        //4. 创建邮件对象
        MimeMessage msg = new MimeMessage(session);

        //5. 设置 发件人、收件人、标题、内容
        msg.setFrom(new InternetAddress("2603459843@qq.com"));  //发件人必须和 当前发送账号保持一致
        msg.addRecipients(Message.RecipientType.TO, "ljh2603459843@163.com");// 设置收件人
        /*msg.addRecipients(Message.RecipientType.CC, "zhaofeiyang@qq.com");// 设置收件人*/
        msg.setSubject("test2");  //邮件标题
        msg.setSentDate(new Date());  //设置发送时间
        MimeMultipart parts = new MimeMultipart();// 创建附件集对象

       /*文本内容附件*/
        MimeBodyPart part = new MimeBodyPart();// 创建一个附件存放文本内容
        part.setContent("ljh2603459843：<br><a href=\"https://www.baidu.com\"><img src=\"cid:img001\" /></a>", "text/html;charset=utf-8");
        parts.addBodyPart(part);// 把附件添加到附件集
        /*文件类型的附件*/
        MimeBodyPart part2 = new MimeBodyPart();// 创建一个附件存放文本内容
        part2.attachFile(new File("E:\\aa.jpg"));// 设置附件文件
        part2.setFileName(MimeUtility.encodeText("aa.jpg"));// 设置附件文件名
        part2.setContentID("img001");
        parts.addBodyPart(part2);

          /*文件类型的附件*/
        MimeBodyPart part3 = new MimeBodyPart();// 创建一个附件存放文本内容
        part3.attachFile(new File("E:\\mail.rar"));// 设置附件文件
        part3.setFileName(MimeUtility.encodeText("mail.rar"));// 设置附件文件名
        parts.addBodyPart(part3);

        MimeBodyPart part4 = new MimeBodyPart();// 创建一个附件存放文本内容
        part4.attachFile(new File("E:\\学员信息.xlsx"));// 设置附件文件
        part4.setFileName(MimeUtility.encodeText("学员信息.xlsx"));// 设置附件文件名
        parts.addBodyPart(part4);

        msg.setContent(parts);  //把附件集加入到邮件对象中
        //6.发送邮件
        Transport.send(msg);
    }
}
